package cn.edu.jnu.entity;

import cn.edu.jnu.GameWin;
import cn.edu.jnu.utils.GameUtils;

import java.awt.*;

/**
 * 功能：敌方boss对象
 * 作者：陈爱国
 * 日期：2024/8/13 10:42
 */
public class BossObj extends GameObj {
    // boss的生命值
    private int lifeValue = 10;

    public BossObj(Image img, int x, int y, int width, int height, double speed, GameWin frame) {
        super(img, x, y, width, height, speed, frame);
    }

    @Override
    public void paintSelf(Graphics gImage) {
        super.paintSelf(gImage);

        // boss碰到左右墙壁，则改变方向
        if(x>550 || x<-50){
            speed = -speed;
        }

        x+=speed;

        // boss与我方子弹的碰撞检测
        for (ShellObj shellObj: GameUtils.shellObjList) {
            if(this.getRect().intersects(shellObj.getRect())){
                // 碰撞后的子弹删除
                shellObj.setX(-100);
                shellObj.setY(100);
                GameUtils.removeObjList.add(shellObj);

                // 发生碰撞则生命值-1
                lifeValue--;
            }

            if(lifeValue<=0){
                // 改变游戏状态为通关
                GameWin.state = 4;
            }

        }

        // boss血条添加
        // 绘制血条背景
        gImage.setColor(Color.WHITE);
        gImage.fillRect(20, 40, 100, 10);

        // 绘制血条
        gImage.setColor(Color.RED);
        gImage.fillRect(20, 40, lifeValue*100/10, 10);

    }

    @Override
    public Rectangle getRect() {
        return super.getRect();
    }
}
